/**
 * @file singleLinkList.h
 * @author your name (you@domain.com)
 * @brief 
 * @version 0.1
 * @date 2024-10-25
 * 
 * @copyright Copyright (c) 2024
 * 
 */
#ifndef _SINGLELINKLIST_H
#define _SINGLELINKLIST_H



struct node
{
	int data;
	struct node *next;
};
typedef struct node node_t;

#ifdef __cplusplus
extern "C"{
#endif


extern node_t *appendHeadNode(node_t **head,int data);
extern node_t *appendEndNode(node_t **head,int data);
extern void modifiedNode(node_t *head,node_t *modified);
extern node_t *queryNode(node_t *head,int data);
extern int obtainNodeCount(node_t *head);
extern void destroyHeadNode(node_t **head);
extern void destoryNode(node_t **head,node_t *node);
extern void destoryEndNode(node_t **head);
extern void destroyLinkList(node_t **head);
extern void reverseLinkList(node_t **head);
extern void destoryLinkListRecurse(node_t *head);
extern node_t *reverseLinkListCom(node_t *head);
extern node_t *recurseReverseLinkList(node_t *head);
extern node_t *iterationReverseLinkList(node_t *head);
extern void printLinkList(node_t *head);

#ifdef __cplusplus
}
#endif

#endif
